package notice

import (
	"github.com/gin-gonic/gin"
	"menu-generation-go/database"
	"menu-generation-go/handlers/common"
	"menu-generation-go/models"
)

type MenuNoticeHandler struct {
	DB *database.Database
}

func NewMenuNoticeHandler(db *database.Database) *MenuNoticeHandler {
	return &MenuNoticeHandler{DB: db}
}

// GetNotices 获取公告列表
// @Summary 获取公告列表
// @Description 获取可见的公告列表
// @Tags 公告
// @Accept json
// @Produce json
// @Success 200 {object} utils.Response{data=[]models.Notice}
// @Router /api/notices [get]
func (n *MenuNoticeHandler) GetNotices(c *gin.Context) {
	var notices []models.MenuNotice

	result := n.DB.GetDB().Where("status = ?", true).
		Order("is_top DESC, publish_time DESC").
		Limit(10).
		Find(&notices)

	if result.Error != nil {
		common.SendErrJSON("获取公告失败", c)
		return
	}

	common.Ok(c, notices)
}
